PostgreSQL 9.5.6文档翻译 : initdb
initdb -- 创建一个新的PostgreSQL数据库群
initdb [ option ...] [ --pgdata | -D ] directory
initdb 用于创建 一个新的PostgreSQL数据库群. 一个数据库群,指的是, 一组被同一个服务器实例管理的数据库.
创建数据库 群,具体来说,包括以下动作:创建用于存储数据库数据 的目录;生成共享 的目录表 ( 这些表属于整个群, 而不是属于任何单个数据库 ) ;创建 template1 和 postgres 数据库. 当妳日后创建一个新数据库时, template1 数据库 中的所有东西都会被复制过去. (因此 , 往 template1 中加入的任何东西, 都被会自动复制到日后新创建的每个数据库中. ) postgres 数据库 , 是一个默认数据库, 被设计为让用户 、 工具和第三方程序使用.
initdb 会尝试着创建指定的数据目录,但是,如果预期 的 数据目录 的亲代目录是root 用户所有的话,它可能没有权限来 做对应的操作。 要在这样的情况下做出操作的话,则, 以 root 用户来创建一个空的数据目录,然后,使用 chown 命令 来将该目录的所有权赋予给数据库用户账号,然后,使用 su 切换 成要用来运行 initdb 的数据库用户。
initdb 必须 以拥有该服务器进程的那个用户的身份来运行,因为服务器需要访问 到 initdb 所创建的那些文件和目录。由于服务器 不能以 root 用户的身份运行,因此,妳同样不能以 root 用户的身份来运行 initdb 。 (事实 上,它自己就会拒绝这样做。 )
initdb 会初始化该数据库群的默认语系(locale)和字符集编码。 在创建数据库时,以下各个参数都可以分别单独指定:字符集编码 ;排列顺序 ( LC_COLLATE ) ;字符集类别 ( LC_CTYPE ,例如大写 、小写、数字 ) 。 initdb 确定 的是, template1 数据库中对于以上各个参数的选项, 这会成为所有其它数据库的默认值。
要改变默认的排列顺序或字符集类别,则,使用 --lc-collate 和 --lc-ctype 选项。 除 C 和 POSIX 之外的排列顺序,都会对性能有一定影响。由于 这些原因, 在运行 initdb 时,务必要选择好正确的语系。
其它 的语系类别,可以在日后启动服务器的时候修改 。 妳还可以使用 --locale 来 为所有的语系类型设置默认值,包括排列顺序和字符集类别。服务器 中 全部 的语系值 ( lc_* ) ,可使用 SHOW ALL 命令来显示。欲知更多细节 ,请阅读 小节22.1 。
要改变默认的编码,则使用 --encoding 选项。欲知更多细节 ,请阅读 小节22.3 。
-D
directory
--pgdata=
directory
这个选项,指定的是, 要用来存放数据库 群的目录。 这是 initdb 所要求的唯一一个必选参数,但是 ,妳也可以避免直接写出来,具体做法是,设置 PGDATA 环境变量 , 这种做法本身也会带来便利,因为数据库服务器 ( postgres ) 也可以在日后利用同一个环境变量值找到数据库目录。
-U
username
--username=
username
指定数据库 中超级用户的用户名。默认 值是运行 initdb 时的实际用户名。 超级用户的实际名字并不重要,不过,一般使用惯例的postgres作为名字,即使实际的操作系统用户名不是这个也没关系。
PGDATA
指定 要用来存放数据库群的目录;可使用 -D 选项来覆盖。
千金静雅 懂得护理的卫生巾
Your opinionsHxLauncher: Launch Android applications by voice commands